package com.yociyy.admin.biz;

import cn.hutool.core.util.StrUtil;
import com.yociyy.admin.mapper.BaseDictDataMapper;
import com.yociyy.admin.model.entity.BaseDictData;
import com.yociyy.common.utils.EntityHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * 字典数据 Biz
 * 
 * @author: YoCiyy
 * @date: 2020/5/21
 */
@Service
public class BaseDictDataBiz {

	@Autowired
	private BaseDictDataMapper baseDictDataMapper;

	/**
	 * 查询字典数据分页列表
	 * 
	 * @param params 查询条件
	 * @return 字典数据列表
	 */
	public List<BaseDictData> selectPage(Map<String, Object> params) {
		return baseDictDataMapper.selectPage(params);
	}

	/**
	 * 新增字段数据
	 * 
	 * @param baseDictData 字段数据信息
	 * @return 结果
	 */
	public int insertDictData(BaseDictData baseDictData) {
		EntityHelper.assembleCrtFields(baseDictData);
		return baseDictDataMapper.insertSelective(baseDictData);
	}

	/**
	 * 修改字典数据
	 * 
	 * @param baseDictData 字典数据信息
	 * @return 结果
	 */
	public int updateDictData(BaseDictData baseDictData) {
		EntityHelper.assembleUpdFields(baseDictData);
		return baseDictDataMapper.updateByPrimaryKeySelective(baseDictData);
	}

	/**
	 * 删除字典数据
	 * 
	 * @param ids id串
	 * @return 结果
	 */
	public int deleteDictDataByIds(String ids) {
		return baseDictDataMapper.batchDeleteDictDataByIds(StrUtil.splitToLong(ids, ","));
	}

	/**
	 * 根据字典类型查询字典数据
	 *
	 * @param dictType 字典类型
	 * @return 字典数据列表
	 */
	public List<BaseDictData> selectDictDataByType(String dictType) {
		return baseDictDataMapper.selectDictDataByType(dictType);
	}

	/**
	 * 根据字典类型和字典键值查询字典数据信息
	 *
	 * @param dictType 字典类型
	 * @param dictValue 字典键值
	 * @return 字典标签
	 */
	public String selectDictLabel(String dictType, String dictValue) {
		return baseDictDataMapper.selectDictLabel(dictType, dictValue);
	}

	/**
	 * 通过主键id查询字典数据
	 * 
	 * @param id 主键id
	 * @return 字典数据
	 */
	public BaseDictData selectDictDataById(Long id) {
		return baseDictDataMapper.selectByPrimaryKey(id);
	}
}
